The present invention relates to a semiconductor integrated circuit, and more particularly to a single-chip microcomputer (hereinbelow, sometimes termed "MC"). The present invention greatly reduces the number of components when constructing a system. The present invention is also well suited to perform the functions of writing data into a built-in nonvolatile memory and of verifying data using an identical sequence.
As described in Japanese Patent Application Laid-open No. 285567/1986, a prior-art apparatus has been constructed so that an MC and a PLA (Programmable Logic Array) are integrated on one chip, and the PLA operates in response to external inputs without regard to the program of the MC, whereupon various functions are performed with the outputs of the PLA so as to allow the MC to operate with the outputs of the PLA.
The PLA is a logic circuit having a variable logical construction wherein the logical functions of the circuit can be constructed by electrically writing data into nonvolatile semiconductor memory elements.
Meanwhile, an improved PLA utilizing EPROM technology is disclosed in U.S. Pat. No. 4,609,986.
In addition, Japanese Patent Application Laid-open No. 198667/1985 discloses a semiconductor integrated circuit device wherein a data processing unit such as a CPU and a nonvolatile memory block for storing software are contained on the same chip.
Electrically-programmable logic devices are discussed in the product catalog of Altera Corporation, p. 12, and "Electronic Design", Aug. 7, 1986, pp. 94-97.
Although the apparatus of Japanese Patent Application Laid-open No. 285567/1986 reduces the number of components in certain applications, it has the problem that versatility is not addressed sufficiently, so that a wide range of applications cannot be covered. Besides, U.S. Pat. No. 4,609,986 merely discloses the PLA itself, and it has not given any consideration to an apparatus in which the PLA, namely, a programmable logic circuit and an MC are fabricated into one chip in order to enhance the versatility of a single-chip microcomputer.
Meanwhile, Japanese Patent Application Laid-open No. 198667/1985 merely discloses that the memory block for storing a program which is the software of a single-chip microcomputer is constructed of a nonvolatile memory, into which data is written from outside the chip by a user, whereby a desired single-chip microcomputer is offered to the user in a short delivery time. Japanese Patent Application Laid-open No. 198667/1985 has not given any consideration to an apparatus in which the user freely constructs a logic device for realizing the hardware of the single-chip microcomputer.
The software (program) of the single-chip microcomputer is developed by the user, and the developed software is written into the ROM (Read Only Memory) of the memory block of the single-chip microcomputer. Accordingly, the user can obtain the single-chip microcomputer having the desired software in a short period in such a way that the ROM is constructed of the nonvolatile memory and that the user can write data from outside the chip into the nonvolatile memory as desired.
On the other hand, regarding the hardware of single-chip microcomputers, individual users often have various prescribed specifications, and hence, the respective user prescribed specifications cannot be satisfied by a single hardware design. Accordingly, each user has heretofore added a random logic circuit or the like as an external circuit of the single-chip microcomputer in order to realize the user prescribed specifications. This has led to the problem that the number of components of the whole system is large.
The hardware of the single-chip microcomputer which each user has peculiar prescribed specifications, includes various units such as a key input encoder (an encoder by which input information from a keyboard is converted so as to be accepted by the single-chip microcomputer), a display decoder (a decoder by which the output information of the single-chip microcomputer is converted so as to drive a display unit), and a time-keeping timer.